package com.study.designmodes.service.liabilityChain.v4;

import java.util.LinkedList;
import java.util.List;

/**
 * 2、定义处理器插槽链：
 *
 * @author yangyanbin
 * @date 2023/03/22
 * @since 20230322
 */
public class ProcessorSlotChain<T> {

    /**
     * 定义有序链表
     */
    private List<ProcessorSlot<T>> linkedList = new LinkedList<>();

    /**
     * 添加到下一个触发节点
     */
    public void addNextSlot(AbstractLinkedProcessorSlot<T> handlerSlot) {
        linkedList.add(handlerSlot);

    }

    /**
     * 循环处理插槽链中的卡槽实现来
     *
     * @param param
     */
    public void process(T param) {
        for (ProcessorSlot<T> processorSlot : linkedList) {
            processorSlot.process(param);
        }

    }
}
